﻿// GalleryCtrl
ctrls.controller('GalleryCtrl', function ($scope, $http, $routeParams, $location, $interval) {
    // Định nghĩa biến toàn cục
    $scope.data = {};
    $scope.strings = {};
    $scope.style = {};
    $scope.variable = {};
    $scope.tblResult = {};
    // Gán giá trị init
    $scope.tblResult.Page = 1;
    /* Định nghĩa phương thức xử lý */
    // Xử lý lấy chuỗi resource
    $scope.getStrings = function () {
        $pc(function () {
            $scope.strings = {};
        });
    };
    // Xử lý init
    $scope.init = function () {
        $pc({
            http: $http,
            url: '/ajx/cln/gallery.aspx/InitLayout',
            data: {},
            success: function (data) {
                // Gán đối tượng data
                $scope.data = data;
                // Gán dữ liệu table
                $scope.tblResult.Limit = data.Limit;
                // Xử lý filter
                $scope.filter();
            }
        });
    };
    // Xử lý filter
    $scope.filter = function () {
        $pc({
            http: $http,
            url: '/ajx/cln/gallery.aspx/Filter',
            data: function () {
                var data = { Offset: 0, Limit: 10 };
                // Lấy giá trị Limit
                if ($scope.tblResult.Limit) {
                    data.Limit = $scope.tblResult.Limit;
                }
                // Lấy giá trị offset
                if ($scope.tblResult.Page) {
                    data.Offset = ($scope.tblResult.Page - 1) * $scope.tblResult.Limit;
                }
                // Kết quả trả về
                return data;
            },
            success: function (data) {
                // Gán data
                $scope.tblResult.Total = data.Total;
                $scope.tblResult.ListData = data.ListData;
                $scope.showPhoto(0);
                $scope.playShow();
            }
        });
    };
    // Xử lý show ảnh
    $scope.showPhoto = function (index) {
        var photo = $scope.tblResult.ListData[index];
        $scope.data.CurrentIndex = index;
        $scope.data.CurrentPhoto = photo.PhotoImage;
        $scope.data.CurrentName = photo.PhotoName;
    };

    $scope.playShow = function () {
        $interval(function () {
            var index = $scope.data.CurrentIndex + 1;
            if (index >= $scope.tblResult.ListData.length) {
                index = 0;
            }
            $scope.showPhoto(index);
        }, 5000);
    };

    /* Định nghĩa các events */
    // Tiến hành lấy chuỗi resource
    $scope.getStrings();
    // Tiến hành xử lý init
    $scope.init();
});